package com.heu.blood.match.dto.req;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.heu.blood.match.converter.DictConverter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BloodInformationQueryPageReqDTO {
    /**
     * 血液ID
     */
    private String bloodId;

    /**
     * 状态-字典
     */
    private String bloodState;

    /**
     * ABO血型
     */
    private String[] aboBloodType;

    /**
     * RH血型
     */
    private String rhBloodType;

    /**
     * 血液类型
     */
    private String bloodType;

    /**
     * 献血时编号
     */
    private String bloodDonationCode;

    /**
     * 失效开始时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private String startTime;

    /**
     * 失效结束时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private String endTime;

    /**
     * 分页查询页数
     */
    private String page;

    /**
     * 分页查询每页记录数
     */
    private String limit;

    /**
     * 入库批次号
     */
    private String batchNumber;
    /**
     * 计量单位-ml等
     */
    private String measurementUnit;

    /**
     * 规格/血量-数字
     */
    private BigDecimal bloodCount;

    /**
     * 排序字段（如 bloodType、gmtCreate 等）
     */
    private String sortField;

    /**
     * 血站出库编号
     */
    private String bloodCenterDeliveryId;
    /**
     * 页面来源
     */
    private String source;
}
